#define  _CRT_SECURE_NO_WARNINGS


#include<stdio.h>

//int main()
//{
//	FILE* pf = fopen("log.txt", "w");
//	if (pf == NULL)
//	{
//		perror("fopen");
//		return 1;
//	}
//	
//	int i = 0;
//	for (i = 0; i < 10; i++)
//	{
//		fprintf(pf, "file:%s line:%d date:%s time:%s i=%d\n", __FILE__, __LINE__, __DATE__, __TIME__, i);
//	}
//
//	fclose(pf);
//	pf = NULL;
//
//	return 0;
//}

#include<stdlib.h>
#include<string.h>

//
//#define ADD(X) ((X) + (X))
//#define SQUARE(X) ((X) * (X))
//#define PRINT(N, FORMAT) printf("the value of "#N" is "FORMAT"\n", N)
//#define CAT(Class, Num) Class##Num
//#define MAX(X, Y) (X) > (Y) ? (X) : (Y)
//#define MALLOC(Num, Type) (Type*)malloc(Num * sizeof(Type))
//
//int main()
//{
//	//int r = 10 * ADD(3);
//	//printf("%d\n", r);
//	//int r = SQUARE(3);
//	//printf("%d\n", r);
//	//int a = 10;
//	//float b = 5.5f;
//	//PRINT(a, "%d");
//	//PRINT(b, "%f");
//
//	//int Class106 = 100;
//	//printf("%d\n", CAT(Class, 106));
//
//	//int m = MAX(2,3);
//	//printf("%d\n", m);
//
//	int* p = MALLOC(10, int);
//
//	return 0;
//}

#include<stddef.h>

//#define OFFSETOF(type, m_name)  (size_t)&(((type*)0)->m_name)
//
//
//typedef struct S
//{
//	char c1;
//	int i;
//	char c2;
//} S;
//int main()
//{
//	S s = { 0 };
//	//printf("%d\n", offsetof(S, c1));
//	//printf("%d\n", offsetof(S, i));
//	//printf("%d\n", offsetof(S, c2));
//
//	printf("%d\n", OFFSETOF(S, c1));
//	printf("%d\n", OFFSETOF(S, i));
//	printf("%d\n", OFFSETOF(S, c2));
//
//	return 0;
//}

//
//#define SWAP(X, Y)  temp = X, X = Y, Y = temp
//
//int main()
//{
//	int a = 0;
//	int b = 0;
//	int temp = 0;
//	scanf("%d %d", &a, &b);
//	SWAP(a, b);
//	printf("%d %d\n", a, b);
//
//	return 0;
//}


//#define REMAINDER(x, y)  x % y
//
//int main()
//{
//	int a = 0;
//	int b = 0;
//	scanf("%d %d", &a, &b);
//	int sum = REMAINDER(a, b);
//	printf("%d\n", sum);
//
//	return 0;
//}

#include<math.h>


//#define S(a, b, c)   ((a) + (b) + (c)) / 2
//#define AREA(a, b, c)   sqrt(((s) * ((s) - (a)) * ((s) - (b)) * ((s) - (c))))
//
//
//int main()
//{
//	double a = 0;
//	double b = 0;
//	double c = 0;
//	scanf("%lf %lf %lf", &a, &b, &c);
//	double s = S(a, b, c);
//	double sum = AREA(a, b, c);
//
//	printf("%.3lf\n", sum);
//
//	return 0;
//}


//#define LEAP_YEAR(y)   if((y % 4 == 0) && (y % 100 != 0) || y % 400 == 0) { printf("L\n");} else{ printf("N\n");}
//
//
//int main()
//{
//	int year = 0;
//	scanf("%d", &year);
//	LEAP_YEAR(year);
//
//	return 0;
//}


#define MAX(a, b, c)    if((a > b) && (a > c)){ printf("%.3lf\n", a);} else if((b > a) && (b > c)){ printf("%.3lf\n", b);} else { printf("%.3lf\n", c);}

double Max(double a, double b, double c)
{
	double max = 0;
	if ((a > b) && (a > c))
		max = a;
	else if ((b > a) && (b > c))
		max = b;
	else
		max = c;
	return max;
}
int main()
{
	double a = 0;
	double b = 0;
	double c = 0;
	scanf("%lf %lf %lf", &a, &b, &c);
	double sum = Max(a, b, c);
	printf("%.3lf\n", sum);
	MAX(a, b, c);

	return 0;
}